package com.xpf.service.status.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xpf.entity.FormDataDTO;
import com.xpf.service.status.enums.BpmInstanceStatus;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class BpmInstanceVO implements Serializable {
    private static final long serialVersionUID = -6933094288667703079L;
    private String bpmInstanceId;
    private String processInstanceId;
    private BpmInstanceStatus instanceStatus;
    private Boolean deleted;
    private Boolean processCallback;
    private Boolean taskCallback;
    private String sourceApp;
    private String bizId;
    private String eventCode;
    private String initiator;
    private String subject;
    private String remark;
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8"
    )
    private Date createTime;
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8"
    )
    private Date endTime;

    private List<FormDataDTO> formData;
    private Map<String, Object> processVariable;


    public BpmInstanceVO() {
    }

    public String getBpmInstanceId() {
        return this.bpmInstanceId;
    }

    public String getProcessInstanceId() {
        return this.processInstanceId;
    }

    public BpmInstanceStatus getInstanceStatus() {
        return this.instanceStatus;
    }

    public Boolean getDeleted() {
        return this.deleted;
    }

    public Boolean getProcessCallback() {
        return this.processCallback;
    }

    public Boolean getTaskCallback() {
        return this.taskCallback;
    }

    public String getSourceApp() {
        return this.sourceApp;
    }

    public String getBizId() {
        return this.bizId;
    }

    public String getEventCode() {
        return this.eventCode;
    }

    public String getInitiator() {
        return this.initiator;
    }

    public String getSubject() {
        return this.subject;
    }

    public String getRemark() {
        return this.remark;
    }

    public Date getCreateTime() {
        return this.createTime;
    }

    public Date getEndTime() {
        return this.endTime;
    }

    public List<FormDataDTO> getFormData() {
        return this.formData;
    }

    public Map<String, Object> getProcessVariable() {
        return this.processVariable;
    }

    public void setBpmInstanceId(String bpmInstanceId) {
        this.bpmInstanceId = bpmInstanceId;
    }

    public void setProcessInstanceId(String processInstanceId) {
        this.processInstanceId = processInstanceId;
    }

    public void setInstanceStatus(BpmInstanceStatus instanceStatus) {
        this.instanceStatus = instanceStatus;
    }

    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    public void setProcessCallback(Boolean processCallback) {
        this.processCallback = processCallback;
    }

    public void setTaskCallback(Boolean taskCallback) {
        this.taskCallback = taskCallback;
    }

    public void setSourceApp(String sourceApp) {
        this.sourceApp = sourceApp;
    }

    public void setBizId(String bizId) {
        this.bizId = bizId;
    }

    public void setEventCode(String eventCode) {
        this.eventCode = eventCode;
    }

    public void setInitiator(String initiator) {
        this.initiator = initiator;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8"
    )
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8"
    )
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }


    public void setFormData(List<FormDataDTO> formData) {
        this.formData = formData;
    }

    public void setProcessVariable(Map<String, Object> processVariable) {
        this.processVariable = processVariable;
    }

/*    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof BpmInstanceVO)) {
            return false;
        } else {
            BpmInstanceVO other = (BpmInstanceVO)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label263: {
                    Object this$deleted = this.getDeleted();
                    Object other$deleted = other.getDeleted();
                    if (this$deleted == null) {
                        if (other$deleted == null) {
                            break label263;
                        }
                    } else if (this$deleted.equals(other$deleted)) {
                        break label263;
                    }

                    return false;
                }

                Object this$processCallback = this.getProcessCallback();
                Object other$processCallback = other.getProcessCallback();
                if (this$processCallback == null) {
                    if (other$processCallback != null) {
                        return false;
                    }
                } else if (!this$processCallback.equals(other$processCallback)) {
                    return false;
                }

                label249: {
                    Object this$taskCallback = this.getTaskCallback();
                    Object other$taskCallback = other.getTaskCallback();
                    if (this$taskCallback == null) {
                        if (other$taskCallback == null) {
                            break label249;
                        }
                    } else if (this$taskCallback.equals(other$taskCallback)) {
                        break label249;
                    }

                    return false;
                }

                Object this$bpmInstanceId = this.getBpmInstanceId();
                Object other$bpmInstanceId = other.getBpmInstanceId();
                if (this$bpmInstanceId == null) {
                    if (other$bpmInstanceId != null) {
                        return false;
                    }
                } else if (!this$bpmInstanceId.equals(other$bpmInstanceId)) {
                    return false;
                }

                label235: {
                    Object this$processInstanceId = this.getProcessInstanceId();
                    Object other$processInstanceId = other.getProcessInstanceId();
                    if (this$processInstanceId == null) {
                        if (other$processInstanceId == null) {
                            break label235;
                        }
                    } else if (this$processInstanceId.equals(other$processInstanceId)) {
                        break label235;
                    }

                    return false;
                }

                Object this$instanceStatus = this.getInstanceStatus();
                Object other$instanceStatus = other.getInstanceStatus();
                if (this$instanceStatus == null) {
                    if (other$instanceStatus != null) {
                        return false;
                    }
                } else if (!this$instanceStatus.equals(other$instanceStatus)) {
                    return false;
                }

                label221: {
                    Object this$sourceApp = this.getSourceApp();
                    Object other$sourceApp = other.getSourceApp();
                    if (this$sourceApp == null) {
                        if (other$sourceApp == null) {
                            break label221;
                        }
                    } else if (this$sourceApp.equals(other$sourceApp)) {
                        break label221;
                    }

                    return false;
                }

                label214: {
                    Object this$bizId = this.getBizId();
                    Object other$bizId = other.getBizId();
                    if (this$bizId == null) {
                        if (other$bizId == null) {
                            break label214;
                        }
                    } else if (this$bizId.equals(other$bizId)) {
                        break label214;
                    }

                    return false;
                }

                Object this$eventCode = this.getEventCode();
                Object other$eventCode = other.getEventCode();
                if (this$eventCode == null) {
                    if (other$eventCode != null) {
                        return false;
                    }
                } else if (!this$eventCode.equals(other$eventCode)) {
                    return false;
                }

                label200: {
                    Object this$bpmType = this.getBpmType();
                    Object other$bpmType = other.getBpmType();
                    if (this$bpmType == null) {
                        if (other$bpmType == null) {
                            break label200;
                        }
                    } else if (this$bpmType.equals(other$bpmType)) {
                        break label200;
                    }

                    return false;
                }

                label193: {
                    Object this$initiator = this.getInitiator();
                    Object other$initiator = other.getInitiator();
                    if (this$initiator == null) {
                        if (other$initiator == null) {
                            break label193;
                        }
                    } else if (this$initiator.equals(other$initiator)) {
                        break label193;
                    }

                    return false;
                }

                Object this$subject = this.getSubject();
                Object other$subject = other.getSubject();
                if (this$subject == null) {
                    if (other$subject != null) {
                        return false;
                    }
                } else if (!this$subject.equals(other$subject)) {
                    return false;
                }

                Object this$remark = this.getRemark();
                Object other$remark = other.getRemark();
                if (this$remark == null) {
                    if (other$remark != null) {
                        return false;
                    }
                } else if (!this$remark.equals(other$remark)) {
                    return false;
                }

                label172: {
                    Object this$createTime = this.getCreateTime();
                    Object other$createTime = other.getCreateTime();
                    if (this$createTime == null) {
                        if (other$createTime == null) {
                            break label172;
                        }
                    } else if (this$createTime.equals(other$createTime)) {
                        break label172;
                    }

                    return false;
                }

                Object this$endTime = this.getEndTime();
                Object other$endTime = other.getEndTime();
                if (this$endTime == null) {
                    if (other$endTime != null) {
                        return false;
                    }
                } else if (!this$endTime.equals(other$endTime)) {
                    return false;
                }

                Object this$nodes = this.getNodes();
                Object other$nodes = other.getNodes();
                if (this$nodes == null) {
                    if (other$nodes != null) {
                        return false;
                    }
                } else if (!this$nodes.equals(other$nodes)) {
                    return false;
                }

                label151: {
                    Object this$formData = this.getFormData();
                    Object other$formData = other.getFormData();
                    if (this$formData == null) {
                        if (other$formData == null) {
                            break label151;
                        }
                    } else if (this$formData.equals(other$formData)) {
                        break label151;
                    }

                    return false;
                }

                Object this$processVariable = this.getProcessVariable();
                Object other$processVariable = other.getProcessVariable();
                if (this$processVariable == null) {
                    if (other$processVariable != null) {
                        return false;
                    }
                } else if (!this$processVariable.equals(other$processVariable)) {
                    return false;
                }

                label137: {
                    Object this$attachments = this.getAttachments();
                    Object other$attachments = other.getAttachments();
                    if (this$attachments == null) {
                        if (other$attachments == null) {
                            break label137;
                        }
                    } else if (this$attachments.equals(other$attachments)) {
                        break label137;
                    }

                    return false;
                }

                Object this$ccList = this.getCcList();
                Object other$ccList = other.getCcList();
                if (this$ccList == null) {
                    if (other$ccList != null) {
                        return false;
                    }
                } else if (!this$ccList.equals(other$ccList)) {
                    return false;
                }

                Object this$approvalRecords = this.getApprovalRecords();
                Object other$approvalRecords = other.getApprovalRecords();
                if (this$approvalRecords == null) {
                    if (other$approvalRecords == null) {
                        return true;
                    }
                } else if (this$approvalRecords.equals(other$approvalRecords)) {
                    return true;
                }

                return false;
            }
        }
    }*/

    protected boolean canEqual(Object other) {
        return other instanceof BpmInstanceVO;
    }

   /* public int hashCode() {
        int PRIME = true;
        int result = 1;
        Object $deleted = this.getDeleted();
        int result = result * 59 + ($deleted == null ? 43 : $deleted.hashCode());
        Object $processCallback = this.getProcessCallback();
        result = result * 59 + ($processCallback == null ? 43 : $processCallback.hashCode());
        Object $taskCallback = this.getTaskCallback();
        result = result * 59 + ($taskCallback == null ? 43 : $taskCallback.hashCode());
        Object $bpmInstanceId = this.getBpmInstanceId();
        result = result * 59 + ($bpmInstanceId == null ? 43 : $bpmInstanceId.hashCode());
        Object $processInstanceId = this.getProcessInstanceId();
        result = result * 59 + ($processInstanceId == null ? 43 : $processInstanceId.hashCode());
        Object $instanceStatus = this.getInstanceStatus();
        result = result * 59 + ($instanceStatus == null ? 43 : $instanceStatus.hashCode());
        Object $sourceApp = this.getSourceApp();
        result = result * 59 + ($sourceApp == null ? 43 : $sourceApp.hashCode());
        Object $bizId = this.getBizId();
        result = result * 59 + ($bizId == null ? 43 : $bizId.hashCode());
        Object $eventCode = this.getEventCode();
        result = result * 59 + ($eventCode == null ? 43 : $eventCode.hashCode());
        Object $bpmType = this.getBpmType();
        result = result * 59 + ($bpmType == null ? 43 : $bpmType.hashCode());
        Object $initiator = this.getInitiator();
        result = result * 59 + ($initiator == null ? 43 : $initiator.hashCode());
        Object $subject = this.getSubject();
        result = result * 59 + ($subject == null ? 43 : $subject.hashCode());
        Object $remark = this.getRemark();
        result = result * 59 + ($remark == null ? 43 : $remark.hashCode());
        Object $createTime = this.getCreateTime();
        result = result * 59 + ($createTime == null ? 43 : $createTime.hashCode());
        Object $endTime = this.getEndTime();
        result = result * 59 + ($endTime == null ? 43 : $endTime.hashCode());
        Object $nodes = this.getNodes();
        result = result * 59 + ($nodes == null ? 43 : $nodes.hashCode());
        Object $formData = this.getFormData();
        result = result * 59 + ($formData == null ? 43 : $formData.hashCode());
        Object $processVariable = this.getProcessVariable();
        result = result * 59 + ($processVariable == null ? 43 : $processVariable.hashCode());
        Object $attachments = this.getAttachments();
        result = result * 59 + ($attachments == null ? 43 : $attachments.hashCode());
        Object $ccList = this.getCcList();
        result = result * 59 + ($ccList == null ? 43 : $ccList.hashCode());
        Object $approvalRecords = this.getApprovalRecords();
        result = result * 59 + ($approvalRecords == null ? 43 : $approvalRecords.hashCode());
        return result;
    }*/

    public String toString() {
        return "BpmInstanceVO(bpmInstanceId=" + this.getBpmInstanceId() + ", processInstanceId=" + this.getProcessInstanceId() + ", instanceStatus=" + this.getInstanceStatus() + ", deleted=" + this.getDeleted() + ", processCallback=" + this.getProcessCallback() + ", taskCallback=" + this.getTaskCallback() + ", sourceApp=" + this.getSourceApp() + ", bizId=" + this.getBizId() + ", eventCode=" + this.getEventCode() + ", initiator=" + this.getInitiator() + ", subject=" + this.getSubject() + ", remark=" + this.getRemark() + ", createTime=" + this.getCreateTime() + ", endTime=" + this.getEndTime() + ", formData=" + this.getFormData() + ", processVariable=" + this.getProcessVariable() + ", attachments="  + ")";
    }
}
